import {
  BwComPropSetConstValueComEnum,
  BwCustomComPropDataTypeEnum,
} from './enum'

/** 当前自定义组件外放属性信息模型 */
export interface BwCustomComPropInfoModel {
  /** 参数标识 */
  key: string

  /** 参数名称 */
  name: string | null

  /** 参数是否是绑定值 */
  isModel?: boolean

  /** 参数是否必填 */
  isRequire: boolean | null

  /** 参数数据类型 */
  dataType: Array<BwCustomComPropDataTypeEnum> | null

  /** 参数默认值 */
  defaultValue?: string | null

  /** 数默认值数据类型 */
  defaultValueDataType?: BwCustomComPropDataTypeEnum | null

  /** 组件常量值配置组件 */
  constValueSetCom?: BwComPropSetConstValueComEnum

  /** 组件常量值配置组件属性 */
  constValueSetComProps?: string | null

  /** 参数备注 */
  remark?: string | null
}

/** 组件外放属性值配置模型 */
export interface BwCustomComPropSetConfig {
  appCode?: string

  comCode?: string

  attrs?: Record<string, any>
}

/** 功能 */
export interface BwCustomComFeaturesModel {
  /** 代码 */
  code?: string

  name?: string
  /** 描述 */
  desc?: string
  /** 适配者 */
  adapters?: Array<BwCustomComFeaturesAdapterModel>

  /** 上级 */
  parentId?: string
}
/** 功能-适配 */
export interface BwCustomComFeaturesAdapterModel {
  /** 用户对象Code */
  userObjectId?: string
  /** 用户对象维度Code */
  userObjectDimensionId?: string
}
